/**
 * @addtogroup brd_bat_chg
 * brd_bat_chg
 * @{
 */
/**
 * @file brd_bat_chg.h
 * @brief 电池充电管理板级层
 * @date 2020-09-30
 * @par 修改日志
 * <table>
 * <tr><th>Date <th>Version <th>Author <th>Description
 * <tr><td>2020-09-30 <td>1.0 <td>软件工程院 <td>创建初始版本
 
 * @par 示例
 * @code
 * 创建一个电池设备.
   if (!Brd_BatChgEnabled())
      Brd_BatChgSetEnable(True);
   ...
   if (Brd_BatChgFinished())
       Brd_BatChgSetEnable(False);
 * @endcode
 * @copyright 杭州鸿泉物联网技术股份有限公司
 */

#ifndef _BRD_BAT_CHG_H_
#define _BRD_BAT_CHG_H_

#include <ofc_types.h>

#ifdef __cplusplus
extern "C" {
#endif

/**
 * 查看充电是否使能
 * @return 返回 True, 表示已使能 \n
 *         返回 False, 表示未使能
 */
Bool Brd_BatChgEnabled(void);

/**
 * 使能或禁止充电
 * @param enable: True表示使能充电, False表示禁止充电
 * @return 无返回值
 */
void Brd_BatChgSetEnable(Bool enable);

/**
 * 检查电池充电是否完成
 * @note 由于硬件的不同可能导致本函数失效, 因此请参见[brd_def](@ref Brd_TBatChgIdTag)
 *    -# 如果brd_def中没有Brd_TBatChgIdTag, 说明本函数是有效的
 *    -# 硬件支持的情况下, 使能充电后, 读取状态才会有效, 否则状态不可靠
 * @return 返回 True, 表示充电完成 \n
 *         返回 False, 表示充电未完成
 */
Bool Brd_BatChgFinished(void);

/**
 * 检查电池是否处于充电中
 * @return 返回 True, 表示充电中 \n
 *         返回 False, 表示未充电
 */
Bool Brd_BatChgIsCharging(void);

#ifdef __cplusplus
}  ///< extern "C"
#endif

#endif // _BRD_BAT_CHG_H_
/**
 * @} 
 */
